@@ -1,3 +1,4 @@
+{ use 5.006; }
use warnings;
use strict;
@@ -10,6 +11,10 @@ Module::Build->new(
"Solar Designer (solar at openwall.com)",
"Andrew Main (Zefram) <zefram\@fysh.org>",
],
+ configure_requires => {
+ "Module::Build" => 0,
+ "perl" => "5.006",
+ },
build_requires => {
"ExtUtils::CBuilder" => "0.15",
"Module::Build" => 0,
@@ -35,4 +40,4 @@ Module::Build->new(
sign => 1,
)->create_build_script;
-exit 0;
+1;
@@ -1,3 +1,16 @@
+version 0.008; 2010-03-11
+
+ * bugfix: avoid memory leak when returning block to Perl space
+
+ * check for required Perl version at runtime
+
+ * in XS, avoid using "class" as a variable name, for compatibility
+ with C++ compilers
+
+ * in Build.PL, explicitly declare configure-time requirements
+
+ * remove bogus "exit 0" from Build.PL
+
version 0.007; 2009-04-22
* in XS code, use the correct "PREINIT:" instead of "INIT:" to introduce
@@ -1,23 +1,8 @@
---
-name: Crypt-Eksblowfish
-version: 0.007
+abstract: 'the Eksblowfish block cipher'
author:
- - Solar Designer (solar at openwall.com)
+ - 'Solar Designer (solar at openwall.com)'
- 'Andrew Main (Zefram) <zefram@fysh.org>'
-abstract: the Eksblowfish block cipher
-license: perl
-resources:
- license: http://dev.perl.org/licenses/
-requires:
- Carp: 0
- Class::Mix: 0.001
- Exporter: 0
- MIME::Base64: 2.21
- XSLoader: 0
- parent: 0
- perl: 5.006
- strict: 0
- warnings: 0
build_requires:
ExtUtils::CBuilder: 0.15
Module::Build: 0
@@ -25,28 +10,46 @@ build_requires:
perl: 5.006
strict: 0
warnings: 0
+configure_requires:
+ Module::Build: 0
+ perl: 5.006
+distribution_type: module
dynamic_config: 0
+generated_by: 'Module::Build version 0.3603'
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Crypt-Eksblowfish
provides:
Crypt::Eksblowfish:
file: lib/Crypt/Eksblowfish.pm
- version: 0.007
+ version: 0.008
Crypt::Eksblowfish::Bcrypt:
file: lib/Crypt/Eksblowfish/Bcrypt.pm
- version: 0.007
+ version: 0.008
Crypt::Eksblowfish::Blowfish:
file: lib/Crypt/Eksblowfish/Blowfish.pm
- version: 0.007
+ version: 0.008
Crypt::Eksblowfish::Family:
file: lib/Crypt/Eksblowfish/Family.pm
- version: 0.007
+ version: 0.008
Crypt::Eksblowfish::Subkeyed:
file: lib/Crypt/Eksblowfish/Subkeyed.pm
- version: 0.007
+ version: 0.008
Crypt::Eksblowfish::Uklblowfish:
file: lib/Crypt/Eksblowfish/Uklblowfish.pm
- version: 0.007
-generated_by: Module::Build version 0.31012
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.2.html
- version: 1.2
-distribution_type: module
+ version: 0.008
+requires:
+ Carp: 0
+ Class::Mix: 0.001
+ Exporter: 0
+ MIME::Base64: 2.21
+ XSLoader: 0
+ parent: 0
+ perl: 5.006
+ strict: 0
+ warnings: 0
+resources:
+ license: http://dev.perl.org/licenses/
+version: 0.008
@@ -1,32 +1,35 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.31012
+# Note: this file was auto-generated by Module::Build::Compat version 0.3603
require 5.006;
-
+
unless (eval "use Module::Build::Compat 0.02; 1" ) {
print "This module requires Module::Build to install itself.\n";
-
+
require ExtUtils::MakeMaker;
my $yn = ExtUtils::MakeMaker::prompt
(' Install Module::Build now from CPAN?', 'y');
-
+
unless ($yn =~ /^y/i) {
die " *** Cannot install without Module::Build. Exiting ...\n";
}
-
+
require Cwd;
require File::Spec;
require CPAN;
-
+
# Save this 'cause CPAN will chdir all over the place.
my $cwd = Cwd::cwd();
-
+
CPAN::Shell->install('Module::Build::Compat');
CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
or die "Couldn't install Module::Build, giving up.\n";
-
+
chdir $cwd or die "Cannot chdir() back to $cwd: $!";
}
eval "use Module::Build::Compat 0.02; 1" or die $@;
Module::Build::Compat->run_build_pl(args => \@ARGV);
+ my $build_script = 'Build';
+ $build_script .= '.com' if $^O eq 'VMS';
+ exit(0) unless(-e $build_script); # cpantesters convention
require Module::Build;
Module::Build::Compat->write_makefile(build_class => 'Module::Build');
@@ -36,7 +36,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
COPYRIGHT
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
Andrew Main (Zefram) <zefram@fysh.org>
The original Eksblowfish code (in the form of crypt()) from which
@@ -1,5 +1,5 @@
This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.55.
+signed via the Module::Signature module, version 0.61.
To verify the content in this distribution, first make sure you have
Module::Signature installed, then type:
@@ -15,20 +15,20 @@ not run its Makefile.PL or Build.PL.
Hash: SHA1
SHA1 0bc3351e37b3dbc594fe80cd16f49aee2a6b17b6 .cvsignore
-SHA1 3935dd4bab29c3f1917233857c73a3099e25d34d Build.PL
-SHA1 63b0108bd52fe40f3e5a8c711c7250f2b26f32f2 Changes
+SHA1 7993422c730b3cbd66e75bf0c7ab08b1043b8eb6 Build.PL
+SHA1 a07be5655476c243f1f100b02a843d8eee359fb6 Changes
SHA1 84bd916d8a2c3f833fa36df262ef1033a805f606 MANIFEST
-SHA1 93793062b733fe202aac10193ba2b1b2e2be43c4 META.yml
-SHA1 f39315b8e83202006e8a916c6a58725d104f75ec Makefile.PL
-SHA1 c000171bda1db0dbefdfb6a83a5fd0251f63d17c README
+SHA1 63b6e67d8428a570adc8dfe6d031d8d429237653 META.yml
+SHA1 f8469f20cf26bafaffabb905631b945ab0f81289 Makefile.PL
+SHA1 ebbf0cbaf9cac56b0edac0775c3bf13e3959e974 README
SHA1 1008eae74fc0ed04ffe262cf934bbe7ef3b56c18 lib/Crypt/.cvsignore
-SHA1 8ac477de058b5355a75ad62b342048570de8a9ca lib/Crypt/Eksblowfish.pm
-SHA1 5f67aaf9d6d98a234ed56b94f2a067760d575ad6 lib/Crypt/Eksblowfish.xs
-SHA1 cb48789973e07dd4f5b6a2b11d3510b094b69e1e lib/Crypt/Eksblowfish/Bcrypt.pm
-SHA1 9f00e065883d4db2f88046ce9928e05cf9134f32 lib/Crypt/Eksblowfish/Blowfish.pm
-SHA1 88d301a63a8bab27ed5a92688df275f749a6ed05 lib/Crypt/Eksblowfish/Family.pm
-SHA1 52b9872b8571da2cdcdbc214d6c02a16c5009b57 lib/Crypt/Eksblowfish/Subkeyed.pm
-SHA1 32aca51d3e13b83b14924e061a22699dcfa7ca8d lib/Crypt/Eksblowfish/Uklblowfish.pm
+SHA1 6813ff7ddc5b2bc24bf269fb1c391aa7794fb177 lib/Crypt/Eksblowfish.pm
+SHA1 665e5d44550cdd82a87b0d9c5d2c18bc18c9eece lib/Crypt/Eksblowfish.xs
+SHA1 beaf93583713b76d341436973ac679981717bbc9 lib/Crypt/Eksblowfish/Bcrypt.pm
+SHA1 f2929098a5a8e60ad9034cac5c9ae5b859cbce1b lib/Crypt/Eksblowfish/Blowfish.pm
+SHA1 0f024a713d9fd2e57ee691dba837314398b03782 lib/Crypt/Eksblowfish/Family.pm
+SHA1 9aea04b43961955bb23a2061e5e0d50cabdf37f0 lib/Crypt/Eksblowfish/Subkeyed.pm
+SHA1 686ebeb4b1d891f48cee4623953ce56defa93ea5 lib/Crypt/Eksblowfish/Uklblowfish.pm
SHA1 4ad6608276c06b7df4a493bafa06795ecbec7f91 t/base64.t
SHA1 22879b7c32306921b426a16eb38ee783c28b49db t/bcrypt.t
SHA1 ab642bf302d854ce2d3dd6b2ac157c048958d924 t/bcrypt_hash.t
@@ -40,11 +40,11 @@ SHA1 74a957cd8b93f25672ecc6aa578a671d084dd343 t/pod_syn.t
SHA1 8ef086a24068f32855e337e6a9d493135785f883 t/subkey.t
SHA1 7892bb05837bab222dbf3ba93d4fb076dc5ad586 t/uklblowfish.t
SHA1 b26fdaaf35efc7d7de03610e1d0c72f18b9c8137 t/utf8.t
-SHA1 5e13bdba880b83ac5a1d5c5f64994977b8af998d typemap
+SHA1 7ad478ba2f46a8291fd098976ea1cebc39db5971 typemap
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
-iEYEARECAAYFAknvhioACgkQOV9mt2VyAVFg1gCgjbitqOk/UYKxd3CF8qAyOXdP
-rvkAnizD74hfwDeuigLS7794LD3kdfdY
-=IIUc
+iEYEARECAAYFAkuZRmUACgkQOV9mt2VyAVEreQCfQuFrg4r4epQt/3tUtSEiOknn
+Fr8AnjCgz/iMTMgDZoAi3BhB4Vl9C6XY
+=L1Rz
-----END PGP SIGNATURE-----
@@ -34,6 +34,7 @@ L<http://www.usenix.org/events/usenix99/provos.html>.
package Crypt::Eksblowfish::Bcrypt;
+{ use 5.006; }
use warnings;
use strict;
@@ -41,7 +42,7 @@ use Carp qw(croak);
use Crypt::Eksblowfish 0.005;
use MIME::Base64 2.21 qw(encode_base64 decode_base64);
-our $VERSION = "0.007";
+our $VERSION = "0.008";
use parent "Exporter";
our @EXPORT_OK = qw(bcrypt_hash en_base64 de_base64 bcrypt);
@@ -176,7 +177,7 @@ Andrew Main (Zefram) <zefram@fysh.org>
=head1 COPYRIGHT
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
Andrew Main (Zefram) <zefram@fysh.org>
=head1 LICENSE
@@ -39,10 +39,11 @@ original Blowfish.
package Crypt::Eksblowfish::Blowfish;
+{ use 5.006; }
use warnings;
use strict;
-our $VERSION = "0.007";
+our $VERSION = "0.008";
use parent "Crypt::Eksblowfish::Subkeyed";
@@ -139,7 +140,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
=head1 COPYRIGHT
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
Andrew Main (Zefram) <zefram@fysh.org>
The original Eksblowfish code (in the form of crypt()) from which
@@ -67,6 +67,7 @@ method L</as_class>.
package Crypt::Eksblowfish::Family;
+{ use 5.006; }
use warnings;
use strict;
@@ -74,7 +75,7 @@ use Carp qw(croak);
use Crypt::Eksblowfish 0.005;
use Class::Mix 0.001 qw(genpkg);
-our $VERSION = "0.007";
+our $VERSION = "0.008";
=head1 CONSTRUCTOR
@@ -206,7 +207,7 @@ Andrew Main (Zefram) <zefram@fysh.org>
=head1 COPYRIGHT
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
Andrew Main (Zefram) <zefram@fysh.org>
=head1 LICENSE
@@ -66,12 +66,13 @@ non-randomness in the choice of the key.
package Crypt::Eksblowfish::Subkeyed;
+{ use 5.006; }
use warnings;
use strict;
use XSLoader;
-our $VERSION = "0.007";
+our $VERSION = "0.008";
XSLoader::load("Crypt::Eksblowfish", $VERSION);
@@ -178,7 +179,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
=head1 COPYRIGHT
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
Andrew Main (Zefram) <zefram@fysh.org>
The original Eksblowfish code (in the form of crypt()) from which
@@ -70,10 +70,11 @@ cryptanalytic reasons.
package Crypt::Eksblowfish::Uklblowfish;
+{ use 5.006; }
use warnings;
use strict;
-our $VERSION = "0.007";
+our $VERSION = "0.008";
use parent "Crypt::Eksblowfish::Subkeyed";
@@ -163,7 +164,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
=head1 COPYRIGHT
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
Andrew Main (Zefram) <zefram@fysh.org>
The original Eksblowfish code (in the form of crypt()) from which
@@ -43,10 +43,11 @@ for a way to encapsulate an Eksblowfish cipher family.
package Crypt::Eksblowfish;
+{ use 5.006; }
use warnings;
use strict;
-our $VERSION = "0.007";
+our $VERSION = "0.008";
use parent "Crypt::Eksblowfish::Subkeyed";
@@ -139,7 +140,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
=head1 COPYRIGHT
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
Andrew Main (Zefram) <zefram@fysh.org>
The original Eksblowfish code (in the form of crypt()) from which
@@ -663,7 +663,7 @@ CODE:
Safefree(ks);
Crypt::Eksblowfish::Subkeyed
-new_from_subkeys(SV *class, SV *parray_sv, SV *sboxes_sv)
+new_from_subkeys(SV *classname, SV *parray_sv, SV *sboxes_sv)
PREINIT:
AV *parray, *sboxes;
int i, j;
@@ -718,7 +718,7 @@ OUTPUT:
RETVAL
Crypt::Eksblowfish::Subkeyed
-new_initial(SV *class)
+new_initial(SV *classname)
CODE:
Newx(RETVAL, 1, BF_key_schedule);
memcpy(RETVAL, &BF_init_state, sizeof(BF_init_state));
@@ -728,7 +728,7 @@ OUTPUT:
MODULE = Crypt::Eksblowfish PACKAGE = Crypt::Eksblowfish
Crypt::Eksblowfish
-new(SV *class, unsigned cost, SV *salt_sv, SV *key_sv)
+new(SV *classname, unsigned cost, SV *salt_sv, SV *key_sv)
PREINIT:
STRLEN salt_len, key_len;
U8 *salt_octets, *key_octets;
@@ -759,7 +759,7 @@ OUTPUT:
MODULE = Crypt::Eksblowfish PACKAGE = Crypt::Eksblowfish::Blowfish
Crypt::Eksblowfish::Blowfish
-new(SV *class, SV *key_sv)
+new(SV *classname, SV *key_sv)
PREINIT:
STRLEN key_len;
U8 *key_octets;
@@ -779,7 +779,7 @@ OUTPUT:
MODULE = Crypt::Eksblowfish PACKAGE = Crypt::Eksblowfish::Uklblowfish
Crypt::Eksblowfish::Uklblowfish
-new(SV *class, SV *key_sv)
+new(SV *classname, SV *key_sv)
PREINIT:
STRLEN key_len;
U8 *key_octets;
@@ -25,5 +25,6 @@ T_BF_BLOCK
{
U8 bfb_octets[8];
export_block($var, (unsigned char *)bfb_octets);
- $arg = newSVpvn((char*)bfb_octets, 8);
+ sv_setpvn($arg, (char*)bfb_octets, 8);
+ SvUTF8_off($arg);
}